1. Field of the Invention
The present invention relates to color computer graphics and more particularly to smoothing of a color map table that maps from source device colors to destination device colors.
2. State of the Art
When converting colors from a source device, such as a CRT, to a destination device, such as a color printer, a popular method of determining the correct color for the destination device is by lookup table. A table is generated such that, when a color for the source device is indexed into the table, the correct color is output for the destination device.
If the destination table is determined by measurement, these measurements may contain errors, which could result in large, inappropriate color shifts from small shifts in input colors. Additionally, interpolators such as trilinear interpolators are used to perform mapping across the entire source color range using only a partial lookup table. In some interpolator implementations, the range of color change from one point to its neighbors may be limited. For example, the range of color change from one point to its neighbors might be limited to -32 to +31 counts out of the range 0 to 255. A requirement, then, is to smooth the table in three dimensions to allow for efficient interpolation, and to minimize measurement errors.
One approach to smoothing the table is to, starting at black (or white), scan each axis (red, green, or blue) one at a time in turn, until all points are verified to be within the constraints. However, due to measurement errors and gamut mapping, in the case of a number of colors, the components were found to increase too fast, resulting in shifts in the gray (achromatic) line. In the case of a color inkjet printer, for example, blue tends to climb rapidly from black to saturated. If the blue axis is traversed first, this causes values near the large values of blue be forced to also have a large value of blue, even if the adjacent colors should not have such a large value of blue. The effect is to shift from a gray color specification to one which has a blue chromatic component. This effect is still apparent if the red or green axis is traversed first. The values prove to be off by less than when the blue axis is traversed first, but a shift toward red or green is more apparent than one toward blue. This effect is highly undesirable, since people are very sensitive to inappropriate shifts away from gray.
What is needed, then, is a method of smoothing a color lookup table that eliminates or minimizes inappropriate shifts away from gray, at the same time reducing the effect of measurement errors and enabling interpolation between the lookup table data points to be performed efficiently.